package br.com.gfkauer.model.facade;

import java.io.Serializable;
import java.util.List;

import br.com.gfkauer.model.dao.EquipmentDAO;
import br.com.gfkauer.model.entity.Equipment;

public class EquipmentFacade implements Serializable{

	private static final long serialVersionUID = 1L;

	private EquipmentDAO equipDAO = new EquipmentDAO();
	
	public void creatEquip(Equipment equip){
		equipDAO.beginTransactio();
		equipDAO.save(equip);
		equipDAO.commitAndCloseTransaction();
	}
	
	public void updateEquip(Equipment equip){
		equipDAO.beginTransactio();
		Equipment persistedEquip = equipDAO.find(equip.getId());
		persistedEquip.setDescricao(equip.getDescricao());
		persistedEquip.setMarca(equip.getMarca());
		persistedEquip.setModelo(equip.getModelo());
		persistedEquip.setObs(equip.getObs());
		equipDAO.update(persistedEquip);
		equipDAO.commitAndCloseTransaction();
	}
	
	public Equipment findEquip(int equipId){
		equipDAO.beginTransactio();
		Equipment equip = equipDAO.find(equipId);
		equipDAO.closeTransaction();
		return equip;
	}
	
	public List<Equipment> listAll(){
		equipDAO.beginTransactio();
		List<Equipment> equips = equipDAO.findAll();
		equipDAO.closeTransaction();
		return equips;
	}
	
	public void deleteEquip(Equipment equipment){
		equipDAO.beginTransactio();
		Equipment persistedEquip = equipDAO.findRefenceOnly(equipment.getId());
		equipDAO.delete(persistedEquip);
		equipDAO.commitAndCloseTransaction();
	}
}
